package com.ctshk.rpc.custom.req.trip;

import com.ctshk.rpc.custom.dto.trip.TripScheduleChannelDetailDTO;
import com.ctshk.rpc.custom.req.QuotationTouristTypeReq;
import com.ctshk.rpc.custom.req.quotation.CollectionFeeReq;
import com.ctshk.rpc.custom.req.quotation.FreeQuoteReqPackageReq;
import com.ctshk.rpc.custom.req.quotation.TripQuoteReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * 保存团期销售设置req
 * </p>
 *
 * @author 叶冠峰
 * @since 2021-01-22
 */
@Data
@ApiModel(value="SaveTripScheduleSalesSettingReq对象", description="保存团期销售设置req")
public class SaveTripScheduleSalesSettingReq implements Serializable {

    @NotNull(message = "团期id不能为空")
    @ApiModelProperty(value = "团期id",required = true)
    private Long scheduleId;

    @NotNull(message = "最小定金不能为空")
    @ApiModelProperty(value = "最小定金",required = true)
    private BigDecimal minDeposit;

    @NotNull(message = "交余数天数不能为空")
    @ApiModelProperty(value = "交余数天数",required = true)
    private Integer deliveryDays;

    @NotNull(message = "请选择报价方式")
    @ApiModelProperty(value = "报价方式(1 自由报价2 行程报价)",required = true)
    private Integer quotationType;

    @ApiModelProperty(value = "团费类型冗余(1 人均,2 服务费)")
    private Integer groupFeeType;

    @ApiModelProperty(value = "代收费用数组")
    private List<CollectionFeeReq> collectionFees;

    @ApiModelProperty(value = "增减团费设置列表")
    private List<FeeAdjustSaveReq> feeAdjustSaveReqList;

    @ApiModelProperty(value = "报价单号")
    private String quotationNumber;

    @ApiModelProperty(value = "旅客人数数组-行程报价套餐里面的旅客")
    private List<QuotationTouristTypeReq> touristTypes;

    @ApiModelProperty(value = "自由报价套餐数组")
    private List<FreeQuoteReqPackageReq> reqPackages;

    @ApiModelProperty(value = "行程报价套餐数组")
    private List<TripQuoteReq> tripQuoteReqs;

    @NotNull(message = "线下渠道类型不能为空")
    @ApiModelProperty(value = "线下渠道类型。1：自营禁售，2：所有部门，3：指定部门/人员",required = true)
    private Integer visableType;

    @ApiModelProperty(value = "线下渠道明细")
    private List<TripScheduleChannelDetailDTO> detailList;

    /*@ApiModelProperty(value = "代收费用列表")
    private List<CollectionFeeSaveReq> collectionFeeSaveReqList;

    */
    /*@ApiModelProperty(value = "团期销售团费套餐列表")
    private List<FreeQuotePackageSaveReq> freeQuotePackageSaveReqList;*/
}
